草庐IT

java - guava的ImmutableXXX真的是不可变的吗?

全部标签

javascript - 更新深层不可变状态属性时,Redux 不更新组件

我的问题:为什么在我的不可变状态(映射)中更新数组中对象的属性不会导致Redux更新我的组件?我正在尝试创建一个将文件上传到我的服务器的小部件,我的初始状态(来self的UploaderReducer内部,您将在下面看到)对象如下所示:letinitState=Map({files:List(),displayMode:'grid',currentRequests:List()});我有一个thunk方法,它在事件发生时(例如进度更新)开始上传和分派(dispatch)操作。例如,onProgress事件如下所示:onProgress:(data)=>{dispatch(fileUpl

javascript - 获取可变深度数组中的第一个数字数组

我在JavaScript框架中使用一个函数,它的返回值可以是以下的任何单个xy坐标对[x,y]xy坐标对数组[[x,y],[x,y],...]由xy坐标对组成的数组[[[x,y],[x,y]],[[x,y],[x,y]],...]返回值取决于对象的几何形状(单点、线或多线)。不管返回值和它的数组深度如何,我想抓取第一个xy坐标对。执行此操作的有效方法是什么?到目前为止,这是我实现目标的代码://hereisthemagicmethodthatcanreturnoneofthreethings:)varmysteryCoordinates=geometry.getCoordinates(

javascript - 如何记录具有已知参数类型的可变长度的参数列表?

相关:Correctwaytodocumentopen-endedargumentfunctionsinJSDoc我有一个函数,它通过访问arguments变量接受多个数组:/***@paramoptionsAnobjectcontainingoptions*@param[options.bind]blablabla(optional)*/functionmodify_function(options){for(vari=1;i现在,我知道除了options之外的每个参数都是一个包含值得记录的值的数组:[search_term,replacement,options]我不考虑将(冗长的

javascript - 为什么在生产中使用没有括号的函数是不好的?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭6年前。Improvethisquestion通读Invokingafunctionwithoutparentheses在评论和答案中多次声明不要在生产中使用此类代码。为什么请?正如您从问题中猜到的那样,我是JavaScript的初学者。如果有人能用通俗易懂的语言来表达他们的回答,那会很棒,但也请反驳你们中有经验的JS人员,他们可能需要更详细和技术上更详细的答复。在生产中使用不带括号的函数可能会或确实会出错的示例将是对答案的重要补充。

JavaScript "window.onload"– "window"真的有必要吗?

我看到人们一直在使用“window.onload”,但为什么呢?“窗口”部分不是完全多余的吗? 最佳答案 如果不这样做,则onload方法将归因于当前对象,无论它是什么(如果有的话)。所以有时它可能会起作用,但编写window.onload是最明确、具体和安全的方法。 关于JavaScript"window.onload"–"window"真的有必要吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com

javascript - 将 React 的不可变助手与 Immutable.js 结合使用

我正在研究助焊剂应用,正在考虑采用immutable.js保持状态。我看到React提供了自己的帮助程序来更新不可变对象(immutable对象)(http://facebook.github.io/react/docs/update.html),但无法说出它与不可变对象(immutable对象)自己的setIn和updateIn方法有何不同(即,我已经可以将对象与===进行比较,如果它们随setIn改变)。是否有理由将react助手与immutable.js一起使用?它只是语法糖吗?TL;DR是:varmap=Immutable.fromJS({bar:'baz'});map2=Re

javascript - 代码混淆在javascript中真的有用吗?

最近我转到了gulp任务管理器,我注意到默认情况下,构建任务会生成.map文件。这让我想知道:混淆生产部署代码有用吗?它能保护我的软件免遭黑客攻击吗?如果是,我应该从那里删除我的.map文件吗? 最佳答案 简单的混淆并不能保护您的软件免遭黑客攻击。如果你真的想保护你的javascript,添加一些东西会让试图窃取或篡改你的软件的人的生活变得非常困难,你应该检查Jscrambler.我还没有看到任何解决方案甚至接近它们使您能够实现的保护级别。关于sourcemaps的问题,如果你混淆yes,你应该删除它们。

javascript - 对于字符串, [x,y,z].join ('' ) 真的比 x + y + z 快吗?

对于字符串,[x,y,z].join('')真的比x+y+z更快吗?在join()更快的印象下,我开始通过我的代码使用它而不是+,然后我在GoogleAnalytics代码中遇到了以下行:ga.src=('https:'===document.location.protocol?'https://ssl':'http://www')+'.google-analytics.com/ga.js';假设Google的编码人员是最有知识的,这让我感到奇怪。当然,该行每次加载页面只会运行一次,可以说任何速度差异都可以忽略不计。但还是? 最佳答案

javascript - JavaScript 中的不可变哈希和数组实现?

javascript中是否有简单的不可变哈希和数组实现?我不需要最好的速度,比克隆更好的合理速度就可以了。另外,如果有简单的Java或一些其他语言的实现可以容易理解并移植到JavaScript,那也很好。更新:目标不仅仅是卡住散列(或数组),而是高效地实现更新操作——不可变散列的更新应该返回一个新的不可变散列。而且它应该比“克隆原始文件并更新它”更有效。原生JS类型的更新复杂度为O(1),克隆复杂度为O(n),特殊不可变数据结构(我要求的)为0(log(n))UPDATE2:JavaScript已经有了Array/Hash:是的,但它们是可变的,我需要类似但不可变的东西,基本上可以通过

javascript - 在正则表达式文字中使用字符类中的/总是安全的吗?

在JavaScript中使用正则表达式时,它是/分隔的,例如/^[a-z]$/。当在该正则表达式中包含斜杠时,即/^[a-z/]$/,一切似乎都工作正常-我的IDE的语法高亮器和Firefox和Chrome的JS解析器都接受它。/不需要在字符类中进行转义是标准化行为,还是只是一种对开发人员友好的实现,因此无法在所有浏览器中工作? 最佳答案 是的,这是由thespecification定义的(第25页):RegularExpressionClass::    [RegularExpressionClassChars]RegularEx